home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / comm / vt10029b / part01 / 2.9a-2.9b.diffs
Text File  |  1990-04-14  |  24KB  |  831 lines

  1. Index: vt100.h
  2. Prereq: 1.4
  3. *** ../29A/vt100.h    Mon Mar 19 09:44:24 1990
  4. --- ./vt100.h    Mon Mar 19 09:44:35 1990
  5. ***************
  6. *** 1,3 ****
  7. ! #define HRCSID "$RCSfile: vt100.h,v $ $Revision: 1.4 $"
  8.   
  9.   /*********************************************************************
  10. --- 1,3 ----
  11. ! #define HRCSID "$RCSfile: vt100.h,v $ $Revision: 1.6 $"
  12.   
  13.   /*********************************************************************
  14. ***************
  15. *** 6,9 ****
  16. --- 6,16 ----
  17.    *
  18.    * $Log:    vt100.h,v $
  19. +  * Revision 1.6  90/03/13  21:34:10  acs
  20. +  * Update VERSION to 2.9B.
  21. +  * 
  22. +  * Revision 1.5  90/02/18  16:54:48  acs
  23. +  * 1) New script routines cmd_overscan() and cmd_close().
  24. +  * 2) New p_ variable: p_overscan.
  25. +  * 
  26.    * Revision 1.4  90/02/12  20:23:52  acs
  27.    * 1) Update date stamp in VERSION for the release of 2.9A.
  28. ***************
  29. *** 39,43 ****
  30.   
  31.   /********* major version (used for title of terminal window) *********/
  32. ! #define    VERSION    "VT100 (V2.9A ACS 900212) Terminal Window"
  33.   
  34.   /*********** ########  define the compiler type here ######## ********/
  35. --- 46,50 ----
  36.   
  37.   /********* major version (used for title of terminal window) *********/
  38. ! #define    VERSION    "VT100 (V2.9B ACS 900313) Terminal Window"
  39.   
  40.   /*********** ########  define the compiler type here ######## ********/
  41. ***************
  42. *** 276,280 ****
  43.   extern UBYTE    *BeepWave;
  44.   extern UBYTE    Audio_AllocMap[4];
  45. ! extern int    p_baud,p_screen,p_interlace,p_depth,p_buffer,p_wbcolors;
  46.   extern int    p_foreground,p_background,p_bold,p_cursor,p_lines,p_mode;
  47.   extern int    p_parity,p_volume,p_wrap,p_echo,p_keyapp,p_curapp,p_bs_del;
  48. --- 283,288 ----
  49.   extern UBYTE    *BeepWave;
  50.   extern UBYTE    Audio_AllocMap[4];
  51. ! extern int    p_baud,p_screen,p_overscan,p_interlace,p_depth,p_buffer;
  52. ! extern int    p_wbcolors;
  53.   extern int    p_foreground,p_background,p_bold,p_cursor,p_lines,p_mode;
  54.   extern int    p_parity,p_volume,p_wrap,p_echo,p_keyapp,p_curapp,p_bs_del;
  55. ***************
  56. *** 328,333 ****
  57.   extern int    cmd_bkg(), cmd_bold(), cmd_buf(), cmd_cursor(), cmd_depth(),
  58.           cmd_device(), cmd_display(), cmd_fore(), cmd_font(),
  59. !         cmd_fonts(), cmd_inter(), cmd_lines(), cmd_screen(),
  60. !         cmd_unit(), cmd_volume(), cmd_wb(), cmd_null(),
  61.   
  62.           /* script commands */
  63. --- 336,341 ----
  64.   extern int    cmd_bkg(), cmd_bold(), cmd_buf(), cmd_cursor(), cmd_depth(),
  65.           cmd_device(), cmd_display(), cmd_fore(), cmd_font(),
  66. !         cmd_fonts(), cmd_inter(), cmd_lines(), cmd_overscan(),
  67. !         cmd_screen(), cmd_unit(), cmd_volume(), cmd_wb(), cmd_null(),
  68.   
  69.           /* script commands */
  70. ***************
  71. *** 339,344 ****
  72.           /* init and script commands */
  73.           cmd_ac(), cmd_appcur(), cmd_baud(), cmd_bt(), cmd_conv(),
  74. !         cmd_echo(), cmd_exit(), cmd_ext(), cmd_fnc(), cmd_key(),
  75. !         cmd_kmode(), cmd_kmaxpk(), cmd_mode(), cmd_mouse(),
  76.           cmd_numkey(), cmd_parity(), cmd_strip(), cmd_share(),
  77.           cmd_short(), cmd_swap(), cmd_wrap(), cmd_xbeep(),
  78. --- 347,352 ----
  79.           /* init and script commands */
  80.           cmd_ac(), cmd_appcur(), cmd_baud(), cmd_bt(), cmd_conv(),
  81. !         cmd_close(), cmd_echo(), cmd_exit(), cmd_ext(), cmd_fnc(),
  82. !         cmd_key(), cmd_kmode(), cmd_kmaxpk(), cmd_mode(), cmd_mouse(),
  83.           cmd_numkey(), cmd_parity(), cmd_strip(), cmd_share(),
  84.           cmd_short(), cmd_swap(), cmd_wrap(), cmd_xbeep(),
  85. Index: ReleaseNotes
  86. *** ../29A/ReleaseNotes    Mon Mar 19 09:44:20 1990
  87. --- ./ReleaseNotes    Mon Mar 19 09:44:32 1990
  88. ***************
  89. *** 1,4 ****
  90. --- 1,38 ----
  91.   Release Notes:
  92.   --------------
  93. + v2.9B Hilights and fixes:
  94. +     - New command OVERSCAN which will allow the user to define, via the
  95. +       LINES command, how large the CUSTOM screen should be.  OVERSCAN OFF
  96. +       will constrain a custom screen to be the same size or smaller than
  97. +       the Workbench screen while OVERSCAN ON will allow the screen to be
  98. +       large enough to accomodate the specified number of lines.
  99. +       NOTE: If you are NOT using a custom screen you are still constrained
  100. +       to the size of the Workbench screen.  OVERSCAN won't help you in
  101. +       this situation.
  102. +     - New command CLOSE which closes the VT100 Info/Xfer status window.
  103. +       If CLOSE is executed you get no confirmation that a script or AREXX
  104. +       macro has completed.  The close flag is reset at the end of each
  105. +       script/AREXX macro.
  106. +     - Clean up returned values in script.c.
  107. +     - cleanup() code in vt100.c wouldn't always free ExtXfer array.
  108. +     - Include 2.9A hilights in this file (ReleaseNotes).
  109. + v2.9A Hilights and fixes:
  110. +     - New menu item STRIP to strip parity of inbound serial data destined
  111. +       for display.
  112. +     - Clean up menu-handling code.
  113. +     - "Classic" kermit routines weren't always freeing memory.
  114. +     - Saybye() in classic kermit didn't always work effectively disabling
  115. +       KERMIT Bye.
  116. +     - Beep after transfers which use an external protocol.
  117. +     - File transferrs wouldn't always prompt for filename.
  118. +     - Squashed a few more bugs where I'd hard-coded the size of the font.
  119. +     - While executing a script, don't poll the serial port unless the
  120. +       script is waiting or delaying.
  121. +     - req() in window.c would sometimes miss events.
  122. +     - Use LONG for byte count in xmodem transfers.
  123. +     - Revised menu handling.
  124. +     - Add RCS info.
  125.   v2.9 ?????? ACS - Many changes.  Highlights:
  126.       - Open information window at far right of main window.
  127. Index: init.c
  128. Prereq: 1.4
  129. *** ../29A/init.c    Mon Mar 19 09:44:21 1990
  130. --- ./init.c    Mon Mar 19 09:44:33 1990
  131. ***************
  132. *** 1,3 ****
  133. ! static char rcsid[] = "$RCSfile: init.c,v $ $Revision: 1.4 $";
  134.   
  135.   /***************************************************************
  136. --- 1,3 ----
  137. ! static char rcsid[] = "$RCSfile: init.c,v $ $Revision: 1.6 $";
  138.   
  139.   /***************************************************************
  140. ***************
  141. *** 6,9 ****
  142. --- 6,23 ----
  143.    *
  144.    * $Log:    init.c,v $
  145. +  * Revision 1.6  90/03/11  14:29:43  acs
  146. +  * 1) If user wants OVERSCAN and a CUSTOM SCREEN then *any* value for
  147. +  *    LINES is valid and we compute the  screen  size  based  on  the
  148. +  *    LINES  value.   Note  that  this  allows the user to specify an
  149. +  *    arbitrarily large (or small) screen.  This was the overwhelming
  150. +  *    response from USENET when I put it to a vote.  If  OVERSCAN  or
  151. +  *    SCREEN  wasn't  specified  then we still restrict the user to a
  152. +  *    screen size maximum of GfxBase->NormalDisplayRows.
  153. +  * 2) Compute  customfudge   earlier   so  it  can  be  used  in  the
  154. +  *    calculations used to implement 1, above.
  155. +  * 
  156. +  * Revision 1.5  90/02/18  17:07:03  acs
  157. +  * Honor OVERSCAN ON/OFF setting.
  158. +  * 
  159.    * Revision 1.4  89/12/12  22:13:56  acs
  160.    * 1) Strip excess blanks from the rest of the menu items.
  161. ***************
  162. *** 367,373 ****
  163.       /* Now set up all the screen info as necessary */
  164.   
  165. !     maxrows = GfxBase->NormalDisplayRows;
  166. !     /*   If user wants to use the current interlace setting then set p_interlace
  167.       ** according to what the ViewLord says it is. */
  168.       if(p_interlace == 2)
  169. --- 381,385 ----
  170.       /* Now set up all the screen info as necessary */
  171.   
  172. !     /* If user wants to use the current interlace setting then set p_interlace
  173.       ** according to what the ViewLord says it is. */
  174.       if(p_interlace == 2)
  175. ***************
  176. *** 376,383 ****
  177.       p_interlace = 0;
  178.   
  179. !     if(p_interlace)
  180. !     maxrows *= 2;
  181.   
  182. !     customfudge = (p_screen == 1) ? 4 : 0;
  183.   
  184.       /*   See if user wants to use everything available (specified LINES 0).If
  185. --- 388,400 ----
  186.       p_interlace = 0;
  187.   
  188. !     customfudge = p_screen ? 4 : 0;
  189.   
  190. !     if(p_overscan && p_screen && p_lines)
  191. !     maxrows = (p_lines * Ysize) + customfudge + Ysize + 2;
  192. !     else {
  193. !     maxrows = GfxBase->NormalDisplayRows;
  194. !     if(p_interlace)
  195. !         maxrows *= 2;
  196. !     }
  197.   
  198.       /*   See if user wants to use everything available (specified LINES 0).If
  199. Index: rexx.c
  200. Prereq: 1.2
  201. *** ../29A/rexx.c    Mon Mar 19 09:44:22 1990
  202. --- ./rexx.c    Mon Mar 19 09:44:34 1990
  203. ***************
  204. *** 1,3 ****
  205. ! static char rcsid[] = "$RCSfile: rexx.c,v $ $Revision: 1.2 $";
  206.   
  207.   /*************************************************************
  208. --- 1,3 ----
  209. ! static char rcsid[] = "$RCSfile: rexx.c,v $ $Revision: 1.3 $";
  210.   
  211.   /*************************************************************
  212. ***************
  213. *** 6,9 ****
  214. --- 6,12 ----
  215.    *
  216.    * $Log:    rexx.c,v $
  217. +  * Revision 1.3  90/02/18  17:03:45  acs
  218. +  * Don't write termination msg if CLOSE has been executed.
  219. +  * 
  220.    * Revision 1.2  89/12/19  20:38:59  acs
  221.    * Added RCS id and change log.
  222. ***************
  223. *** 23,26 ****
  224. --- 26,31 ----
  225.   extern char *extension;            /* in vt100.c        */
  226.   
  227. + extern int closed_info;            /* in script.c        */
  228.   #define AREXXCOMMAND 2
  229.   /*   Derived from:
  230. ***************
  231. *** 124,130 ****
  232.   
  233.       if(arg1 == (char *)AREXXCOMMAND) {
  234. !         if(RexxReplies == 0 && command) {
  235.           LONG memlen = strlen(MacDone) + strlen(command) + 1;
  236.   
  237.           if(message = AllocMem(memlen, MEMF_PUBLIC | MEMF_CLEAR)) {
  238.               strcpy(message, MacDone);
  239. --- 129,136 ----
  240.   
  241.       if(arg1 == (char *)AREXXCOMMAND) {
  242. !         if(RexxReplies == 0 && command && !closed_info) {
  243.           LONG memlen = strlen(MacDone) + strlen(command) + 1;
  244.   
  245. +         closed_info = 0;
  246.           if(message = AllocMem(memlen, MEMF_PUBLIC | MEMF_CLEAR)) {
  247.               strcpy(message, MacDone);
  248. Index: script.c
  249. Prereq: 1.5
  250. *** ../29A/script.c    Mon Mar 19 09:44:23 1990
  251. --- ./script.c    Mon Mar 19 09:44:34 1990
  252. ***************
  253. *** 1,3 ****
  254. ! static char rcsid[] = "$RCSfile: script.c,v $ $Revision: 1.5 $";
  255.   
  256.   /*************************************************************
  257. --- 1,3 ----
  258. ! static char rcsid[] = "$RCSfile: script.c,v $ $Revision: 1.7 $";
  259.   
  260.   /*************************************************************
  261. ***************
  262. *** 6,9 ****
  263. --- 6,20 ----
  264.    *
  265.    * $Log:    script.c,v $
  266. +  * Revision 1.7  90/02/22  20:58:45  acs
  267. +  * 1) Remove unneeded parens from return statements.
  268. +  * 2) Return CMDOK instead of 0 from routines whose rc counts.
  269. +  * 3) New routines cmd_overscan() and cmd_close() need to return a value
  270. +  *    (CMDOK).
  271. +  * 
  272. +  * Revision 1.6  90/02/18  16:57:10  acs
  273. +  * 1) Support new cmds OVERSCAN and CLOSE with cmd_overscan() and
  274. +  *    cmd_close().
  275. +  * 2) Move setvar() closer to the beginning of the file.
  276. +  * 
  277.    * Revision 1.5  89/12/14  20:32:10  acs
  278.    * Wasn't beeping after a transfer using external protocols.
  279. ***************
  280. *** 73,76 ****
  281. --- 84,88 ----
  282.   
  283.   extern long atol();
  284. + extern void KillReq();            /* In window.c    */
  285.   
  286.   #if MANX
  287. ***************
  288. *** 100,103 ****
  289. --- 112,116 ----
  290.   char        golabel[20];         /* label we are looking for in goto */
  291.   char        on_cmd[20];         /* command to execute when on matchs*/
  292. + int        closed_info = 0;     /* info window was closed         */
  293.   int        onsize;             /* size of on_string         */
  294.   int        waitsize;         /* size of wait_string         */
  295. ***************
  296. *** 126,129 ****
  297. --- 139,143 ----
  298.   cmd_cap,    "capture",    3, SCRIPT,    /* ascii capture on/off        */
  299.   cmd_cd,        "cd",        2, SCRIPT,    /* change directory        */
  300. + cmd_close,    "close",    2, INIT|SCRIPT,    /* close the info window    */
  301.   cmd_conv,    "convert",    4, INIT|SCRIPT,    /* convert fn to lowercase    */
  302.   cmd_cursor,    "cursor",    3, INIT,    /* set cursor color        */
  303. ***************
  304. *** 156,159 ****
  305. --- 170,174 ----
  306.   cmd_numkey,    "numkey",    6, INIT|SCRIPT,    /* turn numeric kpad on/off    */
  307.   cmd_on,        "on",        2, SCRIPT,    /* on a 'string' do a cmd    */
  308. + cmd_overscan,    "overscan",    2, INIT,    /* Overscan OK on custom screen    */
  309.   cmd_parity,    "parity",    6, INIT|SCRIPT,    /* Set Parity            */
  310.   cmd_recf,    "recfile",    4, SCRIPT,    /* receive a file from host    */
  311. ***************
  312. *** 425,429 ****
  313.           } else
  314.               InfoMsg2Line("Script:", errmsg);
  315. !         return(cmdrc);
  316.       }
  317.       }
  318. --- 440,444 ----
  319.           } else
  320.               InfoMsg2Line("Script:", errmsg);
  321. !         return cmdrc;
  322.       }
  323.       }
  324. ***************
  325. *** 433,437 ****
  326.       cmdrc = cmd_rx(p);
  327.       implied_rexx = 0;
  328. !     return(cmdrc);
  329.       }
  330.   #endif /* AREXX */
  331. --- 448,452 ----
  332.       cmdrc = cmd_rx(p);
  333.       implied_rexx = 0;
  334. !     return cmdrc;
  335.       }
  336.   #endif /* AREXX */
  337. ***************
  338. *** 453,460 ****
  339.       label = lbase;
  340.       while(label != NULL) {
  341. !     if (strcmp(label->name, lname) == 0) return (label);
  342.       label = label->next;
  343.       }
  344. !     return(NULL);
  345.   }
  346.   
  347. --- 468,476 ----
  348.       label = lbase;
  349.       while(label != NULL) {
  350. !     if (strcmp(label->name, lname) == 0)
  351. !         return label;
  352.       label = label->next;
  353.       }
  354. !     return NULL;
  355.   }
  356.   
  357. ***************
  358. *** 482,486 ****
  359.       }
  360.       exe_cmd(p,l);
  361. !     return(0);
  362.       }
  363.       script_wait = FALSE;
  364. --- 498,502 ----
  365.       }
  366.       exe_cmd(p,l);
  367. !     return CMDOK;
  368.       }
  369.       script_wait = FALSE;
  370. ***************
  371. *** 487,491 ****
  372.   
  373.       if(CmdFromRexx)
  374. !     return 0;
  375.   
  376.       while(fgets(line,256,sf) != NULL) {
  377. --- 503,507 ----
  378.   
  379.       if(CmdFromRexx)
  380. !     return CMDOK;
  381.   
  382.       while(fgets(line,256,sf) != NULL) {
  383. ***************
  384. *** 518,522 ****
  385.       if (*p)
  386.           exe_cmd(p,l);
  387. !     return(0);
  388.       }            /* end of while */
  389.       if (stat == GOTOLABEL)
  390. --- 534,538 ----
  391.       if (*p)
  392.           exe_cmd(p,l);
  393. !     return CMDOK;
  394.       }            /* end of while */
  395.       if (stat == GOTOLABEL)
  396. ***************
  397. *** 537,541 ****
  398.       WaitIO((struct IORequest *)&Script_Timer); /* Get my reply back */
  399.       }
  400. !     InfoMsg1Line("Script: terminated");
  401.       script_on = FALSE;
  402.       script_wait = TRUE;
  403. --- 553,560 ----
  404.       WaitIO((struct IORequest *)&Script_Timer); /* Get my reply back */
  405.       }
  406. !     if(!closed_info) {
  407. !     InfoMsg1Line("Script: terminated");
  408. !     closed_info = 0;
  409. !     }
  410.       script_on = FALSE;
  411.       script_wait = TRUE;
  412. ***************
  413. *** 548,552 ****
  414.       if (reqwinup && ((reqwindow->Flags) & WINDOWACTIVE))
  415.       ActivateWindow(mywindow);
  416. !     return 0;
  417.   }
  418.   
  419. --- 567,571 ----
  420.       if (reqwinup && ((reqwindow->Flags) & WINDOWACTIVE))
  421.       ActivateWindow(mywindow);
  422. !     return CMDOK;
  423.   }
  424.   
  425. ***************
  426. *** 593,597 ****
  427.       }
  428.       *s1 = '\0';
  429. !     return(ptr);
  430.       }
  431.       if (*s1 == '^') {
  432. --- 612,616 ----
  433.       }
  434.       *s1 = '\0';
  435. !     return ptr;
  436.       }
  437.       if (*s1 == '^') {
  438. ***************
  439. *** 598,605 ****
  440.       *s1 = (*(s1+1)|' ')-96;
  441.       *(s1+1) = '\0';
  442. !     return(s1);
  443.       }
  444.       *(s1+1) = '\0';
  445. !     return(s1);
  446.   }
  447.   
  448. --- 617,624 ----
  449.       *s1 = (*(s1+1)|' ')-96;
  450.       *(s1+1) = '\0';
  451. !     return s1;
  452.       }
  453.       *(s1+1) = '\0';
  454. !     return s1;
  455.   }
  456.   
  457. ***************
  458. *** 619,623 ****
  459.       fseek(sf,(long)(label->pos),0);
  460.       }
  461. !     return 0;
  462.   }
  463.   
  464. --- 638,642 ----
  465.       fseek(sf,(long)(label->pos),0);
  466.       }
  467. !     return CMDOK;
  468.   }
  469.   
  470. ***************
  471. *** 635,639 ****
  472.       else
  473.       sendstring(p);
  474. !     return 0;
  475.   }
  476.   
  477. --- 654,658 ----
  478.       else
  479.       sendstring(p);
  480. !     return CMDOK;
  481.   }
  482.   
  483. ***************
  484. *** 648,652 ****
  485.       waitsize = strlen(wait_string);
  486.       script_wait = WAIT_STRING;
  487. !     return 0;
  488.   }
  489.   
  490. --- 667,671 ----
  491.       waitsize = strlen(wait_string);
  492.       script_wait = WAIT_STRING;
  493. !     return CMDOK;
  494.   }
  495.   
  496. ***************
  497. *** 671,677 ****
  498.       on_cmd[oncmdsize] = '\0';
  499.       }
  500. !     return 0;
  501.   }
  502.   
  503.   cmd_delay(seconds)
  504.   char *seconds;
  505. --- 690,727 ----
  506.       on_cmd[oncmdsize] = '\0';
  507.       }
  508. !     return CMDOK;
  509.   }
  510.   
  511. + void setvar(par,typ,var)
  512. + char    *par;
  513. + int    typ,*var;
  514. + {
  515. +     int i;
  516. +     switch (typ) {
  517. +     case 0: /* ON/OFF or YES/NO */
  518. +     case 1: /* not case */
  519. +     if ((par[1]|' ') == 'n' || (par[0]|' ') == 'y') *var = 1-typ;
  520. +     else                        *var = typ;
  521. +     break;
  522. +     case 2: /* read hex number */
  523. +     if (sscanf(par,"%x",&i) == 1) *var = i;
  524. +     break;
  525. +     case 3: /* read decimal number */
  526. +     if (sscanf(par,"%d",&i) == 1) *var = i;
  527. +     break;
  528. +     }
  529. + }
  530. + cmd_overscan(par)
  531. + char *par;
  532. + {
  533. +     setvar(par, 0, &p_overscan);
  534. +     return CMDOK;
  535. + }
  536.   cmd_delay(seconds)
  537.   char *seconds;
  538. ***************
  539. *** 681,685 ****
  540.       Script_Timer.tr_time.tv_micro = 0;
  541.       SendIO((struct IORequest *)&Script_Timer.tr_node);
  542. !     return 0;
  543.   }
  544.   
  545. --- 731,735 ----
  546.       Script_Timer.tr_time.tv_micro = 0;
  547.       SendIO((struct IORequest *)&Script_Timer.tr_node);
  548. !     return CMDOK;
  549.   }
  550.   
  551. ***************
  552. *** 691,695 ****
  553.   
  554.       if (doing_init)
  555. !     return 0;
  556.   
  557.       if (*option) {
  558. --- 741,745 ----
  559.   
  560.       if (doing_init)
  561. !     return CMDOK;
  562.   
  563.       if (*option) {
  564. ***************
  565. *** 708,712 ****
  566.       }
  567.       }
  568. !     return 0;
  569.   }
  570.   
  571. --- 758,762 ----
  572.       }
  573.       }
  574. !     return CMDOK;
  575.   }
  576.   
  577. ***************
  578. *** 994,997 ****
  579. --- 1044,1055 ----
  580.   }
  581.   
  582. + cmd_close(name)
  583. + char *name;
  584. + {
  585. +     KillReq();
  586. +     closed_info = 1;
  587. +     return CMDOK;
  588. + }
  589.   cmd_sb(str)
  590.   char *str;
  591. ***************
  592. *** 1157,1184 ****
  593.       }
  594.       return CMDOK;
  595. - }
  596. - void setvar(par,typ,var)
  597. - char    *par;
  598. - int    typ,*var;
  599. - {
  600. -     int i;
  601. -     switch (typ) {
  602. -     case 0: /* ON/OFF or YES/NO */
  603. -     case 1: /* not case */
  604. -     if ((par[1]|' ') == 'n' || (par[0]|' ') == 'y') *var = 1-typ;
  605. -     else                        *var = typ;
  606. -     break;
  607. -     case 2: /* read hex number */
  608. -     if (sscanf(par,"%x",&i) == 1) *var = i;
  609. -     break;
  610. -     case 3: /* read decimal number */
  611. -     if (sscanf(par,"%d",&i) == 1) *var = i;
  612. -     break;
  613. -     }
  614.   }
  615.   
  616. --- 1215,1218 ----
  617. Index: vt100.c
  618. Prereq: 1.8
  619. *** ../29A/vt100.c    Mon Mar 19 09:44:23 1990
  620. --- ./vt100.c    Mon Mar 19 09:44:34 1990
  621. ***************
  622. *** 1,3 ****
  623. ! static char rcsid[] = "$RCSfile: vt100.c,v $ $Revision: 1.8 $";
  624.   static char hrcsid[] = HRCSID;
  625.   
  626. --- 1,3 ----
  627. ! static char rcsid[] = "$RCSfile: vt100.c,v $ $Revision: 1.9 $";
  628.   static char hrcsid[] = HRCSID;
  629.   
  630. ***************
  631. *** 7,10 ****
  632. --- 7,14 ----
  633.    *
  634.    * $Log:    vt100.c,v $
  635. +  * Revision 1.9  90/02/18  17:05:32  acs
  636. +  * 1) New parameter p_overscan.  Reflects OVERSCAN ON/OFF.
  637. +  * 2) Freeing of ExtXfer[] should always happen.
  638. +  * 
  639.    * Revision 1.8  90/02/12  20:25:05  acs
  640.    * Include reference to HRCSID defined in vt100.h.
  641. ***************
  642. *** 279,282 ****
  643. --- 283,287 ----
  644.   int    p_shared    = 1;    /* Open serial device in shared mode    */
  645.   int    p_screen    = 0;    /* 0 = WORKBENCH, 1 = CUSTOM        */
  646. + int    p_overscan    = 0;    /* 0 = no overscan, 1 = overscan OK    */
  647.   int    p_wbcolors    = 1;    /* 0 = Custom, 1 = Workbench colors    */
  648.   int    p_interlace    = 2;    /* 0 = no interlace, 1 = interlace, 2 = ASIS */
  649. ***************
  650. *** 712,725 ****
  651.           CloseScreen( myscreen );
  652.       }
  653. -     for(i = 0; i < NumExts; i++) {
  654. -         struct ExternalXfer *xfer = ExtXfer[i];
  655. -         FreeMem(xfer->dispname, (long)(strlen(xfer->dispname)+1));
  656. -         FreeMem(xfer->downname, (long)(strlen(xfer->downname)+1));
  657. -         FreeMem(xfer->send, (long)(strlen(xfer->send)+1));
  658. -         FreeMem(xfer->receive, (long)(strlen(xfer->receive)+1));
  659. -         FreeMem(xfer, (long)sizeof(struct ExternalXfer));
  660. -     }        
  661.       case 3:        /* error opening screen */
  662.       case 2:        /* error opening graphics library */
  663. --- 717,720 ----
  664. ***************
  665. *** 732,736 ****
  666.           CloseLibrary((struct Library *)IntuitionBase);
  667.       default:
  668. !     if (*reason) puts (reason);
  669.       }
  670.   
  671. --- 727,742 ----
  672.           CloseLibrary((struct Library *)IntuitionBase);
  673.       default:
  674. !     for(i = 0; i < NumExts; i++) {
  675. !         struct ExternalXfer *xfer = ExtXfer[i];
  676. !         FreeMem(xfer->dispname, (long)(strlen(xfer->dispname)+1));
  677. !         FreeMem(xfer->downname, (long)(strlen(xfer->downname)+1));
  678. !         FreeMem(xfer->send, (long)(strlen(xfer->send)+1));
  679. !         FreeMem(xfer->receive, (long)(strlen(xfer->receive)+1));
  680. !         FreeMem(xfer, (long)sizeof(struct ExternalXfer));
  681. !     }        
  682. !     if (*reason)
  683. !         printf("VT100: %s\n", reason);
  684.       }
  685.   
  686. Index: vt100.doc
  687. *** ../29A/vt100.doc    Mon Mar 19 09:44:23 1990
  688. --- ./vt100.doc    Mon Mar 19 09:44:35 1990
  689. ***************
  690. *** 302,305 ****
  691. --- 302,314 ----
  692.       CD    DF1:foo/bar    set the directory as specified
  693.   --------------------------------------------------------------------------
  694. + CLOSE    Close info window                (INIT,SCRIPT)
  695. +     Format:
  696. +     CLOSE            Note there are no parameters
  697. +     Example:
  698. +     CLOSE            This command can be execute from either a
  699. +                 VT100 or an AREXX script.  If this command
  700. +                 is executed then there will be no message
  701. +                 confirming the script's completion.
  702. + --------------------------------------------------------------------------
  703.   CONVERT    Tell KERMIT whether or not to convert filenames    (INIT,SCRIPT)
  704.       Format:
  705. ***************
  706. *** 440,443 ****
  707. --- 449,454 ----
  708.       INTERLACE ON        Use interlacing
  709.       INTERLACE ASIS        Use interlace if WBSCREEN uses it
  710. +                 See also OVERSCAN, LINES and SCREEN.
  711.   --------------------------------------------------------------------------
  712.   KB    Send a BYE packet to a host KERMIT server.    (SCRIPT)
  713. ***************
  714. *** 481,488 ****
  715.       LINES n
  716.       Example:
  717. !     LINES 24        Maximum for non-interlace
  718. !     LINES 48        Maximum for interlaced
  719.       LINES 0            Determine the maximum number of lines
  720. !                 available and use it
  721.   --------------------------------------------------------------------------
  722.   MODE    Set a transfer mode for KERMIT to use        (INIT,SCRIPT)
  723. --- 492,504 ----
  724.       LINES n
  725.       Example:
  726. !     LINES 24        Maximum for non-interlace if OVERSCAN is OFF
  727. !     LINES 48        Maximum for interlaced if OVERSCAN is OFF
  728.       LINES 0            Determine the maximum number of lines
  729. !                 available and use it.  Note that this will
  730. !                 constrain the window and screen to be the
  731. !                 same size as or smaller than the Workbench
  732. !                 screen.
  733. !                 See also: OVERSCAN, SCREEN, INTERLACE
  734.   --------------------------------------------------------------------------
  735.   MODE    Set a transfer mode for KERMIT to use        (INIT,SCRIPT)
  736. ***************
  737. *** 551,554 ****
  738. --- 567,586 ----
  739.                   Send a space every time --more-- is received
  740.   --------------------------------------------------------------------------
  741. + OVERSCAN    Allow overscan on custom screens    (INIT)
  742. +     Format:
  743. +     OVERSCAN ON/OFF or YES/NO
  744. +     Example:
  745. +     OVERSCAN ON        Normally, VT100 constrains the maximum
  746. +                 screen size to be the same as Workbench.
  747. +                 This command instructs VT100 to ignore the
  748. +                 Workbench size and compute the screen size
  749. +                 based on the value specified in the LINES
  750. +                 command.  If LINES is set to 0 then VT100
  751. +                 constrains the screen and window to the
  752. +                 Workbench screen/window size irrespective
  753. +                 of the OVERSCAN setting.
  754. +                 See also LINES, SCREEN and INTERLACE.
  755. + --------------------------------------------------------------------------
  756.   PARITY    Sets the parity                    (INIT,SCRIPT)
  757.       Format:
  758. ***************
  759. *** 618,621 ****
  760. --- 650,655 ----
  761.       SCREEN WORKBENCH    use the workbench screen
  762.       SCREEN CUSTOM        use a custom screen
  763. +                 See also OVERSCAN, LINES and INTERLACE.
  764.   --------------------------------------------------------------------------
  765.   SEND    Sends a string or character to the host.    (SCRIPT)
  766. Index: window.c
  767. Prereq: 1.5
  768. *** ../29A/window.c    Mon Mar 19 09:44:24 1990
  769. --- ./window.c    Mon Mar 19 09:44:35 1990
  770. ***************
  771. *** 1,3 ****
  772. ! static char rcsid[] = "$RCSfile: window.c,v $ $Revision: 1.5 $";
  773.   
  774.   /****************************************************
  775. --- 1,3 ----
  776. ! static char rcsid[] = "$RCSfile: window.c,v $ $Revision: 1.6 $";
  777.   
  778.   /****************************************************
  779. ***************
  780. *** 6,9 ****
  781. --- 6,12 ----
  782.    *
  783.    * $Log:    window.c,v $
  784. +  * Revision 1.6  90/02/22  20:56:31  acs
  785. +  * When we write to the Info window we must clear the Info closed flag.
  786. +  * 
  787.    * Revision 1.5  90/01/23  20:17:11  acs
  788.    * 1) Machine would lock up due to req() "missing" some events.  Thanks
  789. ***************
  790. *** 43,46 ****
  791. --- 46,51 ----
  792.   #include "vt100.h"
  793.   
  794. + extern int closed_info;        /* in script.c */
  795.   static char *infkey[] = {    /* F-keys resulting from RawKeyConvert() */
  796.       "0~",  "1~",  "2~",  "3~",  "4~",  "5~",  "6~",  "7~",  "8~",  "9~",
  797. ***************
  798. *** 676,679 ****
  799. --- 681,686 ----
  800.       Move(reqwindow->RPort, (LONG)reqminx, (LONG)(reqy+BaseLine));
  801.       Text(reqwindow->RPort, msg, msglen);
  802. +     closed_info = 0;    /* Info window not closed anymore */
  803.   }
  804.   
  805.